#pragma once

#include<list>
using std::list;
#include<Windows.h>
#include "Particle.h"

#include "SGD Wrappers\CSGD_Direct3D.h"

class Tile;
class Emitter
{
private:
	Tile* tile;
	list<Particle> LiveParticles;
	list<Particle> DeadParticles;
	int ImageID;
	D3DCOLOR SourceBlend;
	D3DCOLOR DestBlend;
	int SpawnType;
	int SpawnX;
	int SpawnY;
	int SpawnHeight;
	int SpawnWidth;
	float MaxLife;
	bool looping;
	float StartVelX;
	float StartVelY;
	float EndVelX;
	float EndVelY;
	DWORD StartColor;
	DWORD EndColor;
	int StartScaleX;
	int StartScaleY;
	int EndScaleX;
	int EndScaleY;
	int MaxParticles;
	float SpawnRate;
	float StartVelXMax;
	float StartVelXMin;
	float StartVelYMax;
	float StartVelYMin;

public:
	Emitter();
	~Emitter();
	void Render(void);
	void Update(float ElapsedTime);
};